<?php
use Workerman\Worker;
use Workerman\Protocols\Http;

require_once 'config/config.php';
require_once 'libs/app.func.php';
require_once 'libs/app.http.php';

$app = new WebWorker\AppHttp("http://0.0.0.0:3333");
$app->count = 4;
$app->name = "apiServ";
//设置每个进程处理多少请求后重启(防止程序写的有问题导致内存泄露)，默认为10000
$app->max_request = 100000;
//自动加载目录--会加载目录下的所有php文件
$app->autoload = array(__DIR__."/libs/",__DIR__."/ctls/");
//启动时执行的代码，这儿包含的文件支持reload
$app->onAppStart = function($app) use($config){
    autoload_dir($app->autoload);
    //$app->db = new DbMysql($config["db"]);
    $app->db = DbMysql::getInstance($config["db"]);
};

//应用级中间件--对/hello访问启用ip限制访问
$app->AddFunc("/hello",function() {
    if ( $_SERVER['REMOTE_ADDR'] != '127.0.0.1' ) {
        $this->ServerHtml("禁止访问");
        return true;//返回ture,中断执行后面的路由或中间件，直接返回给浏览器
    }   
});
//应用级中间件--对所有以api前缀开头的启用签名验证
$app->AddFunc("/api",function() use($config) {
    $data = $_GET ? $_GET : $_POST;
    if ( !Maccess::verify_sign($data,$config["access"]) ){
        $this->ServerHtml("禁止访问");
        return true;
    }
});

//访问日志
//Worker::$stdoutFile = './stdout.log';

